/**
 * 
 */
package No401_500.No491_500.KeyboardRow_500;

import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;

/** 
 * @author  作者 E-mail: ttljtw@qq.com
 * @date 创建时间：2017年2月19日 下午6:47:52 
 * @version 1.0 
 * @parameter  
 * @since  
 * @return  
 */
/**
 * @author 李敬
 *
 */
public class Solution {
	
	final static HashSet<Character> a = new HashSet<Character>(){
		{
			add('q');
			add('w');
			add('e');
			add('r');
			add('t');
			add('y');
			add('u');
			add('i');
			add('o');
			add('p');
		}
	};
	static HashSet<Character> b = new HashSet<Character>(){{
		add('a');
		add('s');
		add('d');
		add('f');
		add('g');
		add('h');
		add('j');
		add('k');
		add('l');
	}};
	static HashSet<Character> c = new HashSet<Character>(){{
		add('z');
		add('x');
		add('c');
		add('v');
		add('b');
		add('n');
		add('m');
	}};
	
    public String[] findWords(String[] words) {
    	List<String> result = new LinkedList<String>();
        for (String string : words) {
        	HashSet<Character> temp;
        	int flag = 1;
        	if (a.contains(Character.toLowerCase(string.charAt(0)))) {
				temp = a;
			} else if (b.contains(Character.toLowerCase(string.charAt(0)))) {
				temp = b;
			} else{
				temp = c;
			}
			for (int i = 1; i < string.toCharArray().length; i++) {
				if (!temp.contains(Character.toLowerCase(string.charAt(i)))) {
					flag = 0;
					break;
				}
			}
			if (flag == 1) {
				result.add(string);
			}
		}
//        System.out.println(result);
    	return result.toArray(new String[result.size()]);
    }

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[] a = {"Hello","Alaska","Dad","Peace"};
		Solution solution = new Solution();
		System.out.println(Arrays.asList(solution.findWords(a)));
	}

}
